Шкурки. Справочник - Справка Light Alloy

Вся информация по шкуркам в виде справочника.

Структура шкурки
Структура файла SkinInfo.txt
Структура файла Interface.xml
Перечень тегов Interface.xml
Перечень атрибутов тегов Interface.xml
Типы элементов шкурки
Перечень всех элементов шкурки

Структура шкурки

Файл Функция Требования
Шкурка.las Объединяет все файлы шкурки в один непонятный файл, который неподготовленный пользователь не станет распаковывать
  1. Имя файла: любое.las (в личных целях можно использовать zip или вообще неупакованную шкурку);
  2. архив в формате ZIP;
  3. алгоритм сжатия DEFLATE (используется архиваторами по умолчанию);
  4. метод сжатия (скоростной/нормальный/максимальный и т.п.) - любой, но рекомендуется максимальный.
SkinInfo.txt Информация о шкурке в окне настроек
  1. Имя файла: "SkinInfo.txt";
  2. Кодировка: UTF-8 with signature (она же - UTF-8 BOM).
Preview.png Предпросмотр шкурки в окне настроек
  1. Имя файла: "Preview.png";
  2. Параметры сохранения в PNG: любые;
  3. Размеры изображения: 200х150.
Interface.xml Описывает, что, где и как будет расположено
  1. Имя файла: "Interface.xml";
  2. Кодировка: UTF-8 with signature (она же - UTF-8 BOM).
Skin.png (.png) Источник всей графики шкурки

Изображения:

  1. необходимо избегать оставлять много свободного места (но не в ущерб удобству);
  2. необходимо разделять все изображения в файле отступами в 1 пиксель (в том числе состояния кнопки между собой) для удобства восприятия и последующей разметки.

PNG:

  1. имя файла: любое на латинице;
  2. цветовое пространство: любое (24 бит/256/2 цветов);
  3. прозрачность не поддерживается;
  4. если изначально PNG-файл был создан в Photoshop, рекомендуется пересохранение с помощью FastStone Image Viewer (бесплатен для домашнего пользования), - это может в 2-4 раза уменьшить размер файла.

BMP:

  1. имя файла: любое на латинице;
  2. цветовое пространство: любое (24 бит/256/16/2 цветов);
  3. сжатие в RLE не рекомендуется, т.к. это ослабит сжатие всей шкурки, и она будет больше.

Структура файла SkinInfo.txt

Параметры:

Файл SkinInfo.txt состоит из 6-и строк. Ограничение каждой строки - не более 45 символов. Переносы не допускаются.

Строка Значение
SkinTitle Название шкурки
SkinAuthor Автор шкурки (имя или псевдоним)
SkinVer версия шкурки
SkinWWW вебсайт шкурки; рекомендуется таковым именовать тему на официальном форуме, но не обязательно.
SkinCmt Комментарий к шкурке любого содержания
SkinAudio Если "0", то шкурка будет доступна только в обычном режиме;
если "1", то шкурка будет доступна только в аудиорежиме.

Пример:

SkinTitle=Dub Audio SkinAuthor=Gilorn, Dvigok SkinVer=4.7.5.2 SkinWWW=http://www.light-alloy.ru/forum/ru_skins/dub_audio/ SkinCmt=Dub skin for audio SkinAudio=1

Структура файла Interface.xml

<SKIN minsize="," type="standart">
Определение графических констант (подблоки можно располагать в произвольном порядке)
<IMAGE id="Logo" file="logo.png"> константа логотипа
<IMAGE id="HD" file="Header.png"> константы верхней панели (заголовка)
<IMAGE id="FT" file="Footer.png"> константы нижней панели (панели управления)
<IMAGE id="PL" file="Playlist.png"> константы панели списка
<IMAGE id="Menu" file="Menu.png"> константы контекстного меню
<IMAGE id="Hint" file="Hint.png"> константы хинтов
<IMAGE id="Color" file="Color.png"> константы наборов цветов
Каждый "IMAGE" состоит из отдельных элементов - AREA.
блок распознавания графических шрифтов
<FONT id="Digits" img="FT.Digits" chars=" 0123456789:"/>
Применение контролов (подблоки можно располагать в произвольном порядке)
<CTLDEF id="WndBorder" type="Panel" bg="HD.brd" size="29,52" bgsplit="14,24"/> рамка
<CTLDEF id="Caption" type="Panel" bg="HD.bg" size="400,21" bgsplit="14,10"> верхняя панель (заголовок)
<CTLDEF id="CtlPanel" type="Panel" bg="FT.bg" size="400,84" bgsplit="10,10"> нижняя панель (панель управления)
<CTLDEF id="PListPanel" type="Panel" bg="PL.bg" size="29,46" bgsplit="7,23"> панель списка
Каждый "CTLDEF" (кроме CTLDEF id="WndBorder") состоит из отдельных элементов - CONTROL.

Параметр "id" менять в большинстве случаев нельзя (исключения: IMAGE id="HD", IMAGE id="FT", IMAGE id="PL", но для удобства восприятия даже их не рекомендуется менять).

Перечень тегов Interface.xml

Тег Назначение Доступные атрибуты
SKIN Контейнер для всех остальных тегов minsize, type
   IMAGE Именной блок констант со ссылкой на файл-источник id, file
      AREA Создаёт графическую константу id, pos, size
   FONT Создаёт графический шрифт на основе константы id, img, chars
   CTLDEF Именной блок контролов. Представляет одну из жёстко заданных панелей id, type, bg, size, bgsplit, bgsplit_lt, bgsplit_rb
      CONTROL Создаёт контрол.
Контрол типа "панель" может содержать другие контролы
type, align, pos, size, bgsplit, img, link,
font, fontsz, top_delta, bold, bg, bgsplit, variable, text,
bgfill, chapter, chapter_pos, digits_ypos, thumb, ticks_ypos, lotick, hitick, OpeningPos, OpeningHeight

Перечень атрибутов тегов Interface.xml

Атрибут Функция Синтаксис Доступен для тегов
alignопциональный Располагает контрол горизонтально по центру. При этом игнорируется значение позиции по горизонтали. Рекомендуется для размещения по центру панелей, в которых будут расположены другие контролы. align="center"
только так и никак иначе
CONTROL
type = Panel | GfxBtn
bg Определяет изображение фона контролов и группы контролов (кроме кнопок) bg="(IMAGE id).(AREA id)"
Например, bg="HD.bg"
CTLDEF, CONTROL
(кроме кнопок)
bgfill Определяет изображение фона пройденного участка контролов "громкость" и "шкала времени" bgfill="(IMAGE id).(AREA id)"
Например, bgfill="FT.VolBGF"
CONTROL
type = slider | seeker
bgsplit Определяет пиксель по которому произойдёт растягивание контрола (кроме кнопок). bgsplit="x,y"
x,y - целые, больше нуля
Например: bgsplit="5,19"
CTLDEF, CONTROL
(кроме кнопок)
bgsplit_lt,
bgsplit_rb
Определяет левый верхний (bgsplit_lt) и правый нижний (bgsplit_rb) пиксели, определяющие прямоугольник, по которому произойдёт растягивание бордюра.
bgsplit_lt="x,y"
bgsplit_rb="x,y"
x,y - целые, больше нуля
Например: bgsplit_lt="6,26" bgsplit_rb="6,6"
CTLDEF
id="WndBorder"
bold Определяет жирность текстовой строки, если она задаётся обычным шрифтом bold="x"
где x= 0 или 1. Если 1, то жирный, если 0, то нет.
Например, bold="0"
CONTROL
type = text
border_sizeопциональный Параметр, определяющий толщину рамки окна. Рамка есть всегда, даже когда её толщина составляет 0 пикселей. border_size="x1,y1,x2,y2"
где x1,y1,x2,y2 - это четыре целых числа в порядке "слева,сверху,справа,снизу". По умолчанию "4,3,4,5"
Например, border_size="3,2,3,4"
CTLDEF
id="WndBorder"
chapter определяет изображение маркера закладки на шкале времени chapter="(IMAGE id).(AREA id)"
Например, chapter="Ft.SeekChapter"
CONTROL
type=Seeker
chapter_pos определяет позицию изображения маркера закладки на шкале времени. chapter_pos="x,y"
где x - целое неположительное число (0 - левый пиксель маркера указывает на нужную позицию),
y - целое неотрицательное число (0 - касается верхней границы шкалы времени)
Например, chapter_pos="-1,12"
CONTROL
type=Seeker
chars задаёт последовательность, в соответствии с которой будет распознаваться графический шрифт chars="abcd"
где abcd должен содержать " 0123456789:" для Часов и Длительности и дополнительно "<" для Позиции. Порядок символов любой. Возможно наличие любых дополнительных символов.
FONT
digits_ypos определяет вертикальное смещение цифр на шкале времени. digits_ypos="y"
где y - целое неотрицательное число (0 - касается верхней границы шкалы времени)
Например, digits_ypos="4"
CONTROL
type=Seeker
file определяет файл изображения, на основе которого будут создаваться вложенные графические константы. file="filename.ext"
где filename.ext - имя файла, включая расширение.
Напимер: file="main.png"
IMAGE
font определяет шрифт (системный или графический) для текстового контрола font="anyfont"
где anyfont - название шрифта
Например font="Verdana", font="Digits"
CONTROL
type=Text
fontsz определяет размер системного шрифта fontsz="x"
где x - целое число больше нуля.
Например fontsz="10"
CONTROL
type=Text
hitick определяет основную (высокую) насечку на шкале времени hitick="(IMAGE id).(AREA id)"
Например hitick="FT.SeekHiTick"
CONTROL
type=Seeker
id Имя собственное элемента, используемое в дальнейшем для обращения к нему id="TypName"
где TypName - уникальное имя (см. справочник дальше)
Например id="btSubs"
IMAGE, AREA, FONT, CTLDEF
img определяет графическую константу для формирования кнопки img="(IMAGE id).(AREA id)"
Например img="FT.btPlay"
CONTROL
type=GfxBtn
link определяет функцию кнопки или текстовой строки link="fx"
где fx - это одна из предопределённых функций
Например link="App.SuperPlay"
CONTROL
type=GfxBtn | Text
lotick определяет дополнительную (низкую) насечку на шкале времени lotick="(IMAGE id).(AREA id)"
Например lotick="FT.SeekLoTick"
CONTROL
type=Seeker
minsize Определяет минимальный размер окна проигрывателя, если используется эта шкурка. Используется, чтобы кнопки не наезжали одна на другую. minsize="x,y"
где x,y - ширина и высота соответственно
Например minsize="500,250"
SKIN
openingHeight определяет высоту полосы автопромотки на шкале времени openingHeight="x"
где x - целое положительное число
Например openingHeight="6"
CONTROL
type=Seeker
openingPos определяет отступ от верхнего края шкалы времени для полосы автопромотки openingPos="y"
где y - расстояние от верха шкалы времени до верха автопромотки
Например openingPos="14"
CONTROL
type=Seeker
pos определяет позицию графической константы на рисунке или контрола на панели pos="x,y"
где x,y - расстояние от левого и верхнего краёв соответственно. У контролов значения могут быть отрицательными. Отрицательность говорит о том, что отсчёт будет происходить не от левого или верхнего краёв, а от правого или нижнего
Например pos="50,67"
AREA, CONTROL
size определяет размер графической константы или контрола size="x,y"
где x,y - расстояние от левого и верхнего краёв описываемого элемента соответственно. У контролов значения могут быть отрицательными. Отрицательность говорит о том, что отсчёт будет происходить не от левого или верхнего краёв элемента, а от правого или нижнего краёв панели
Например size="24,28"
AREA, CONTROL
text определяет текстовое содержимое контрола соответствующего типа text="any"
где any - это произвольный текст.
Помимо всего прочего, можно вставить переменные {TITLE},{POS},{DUR},{TIME}, обозначающие Заголовок, Позицию, Длительность и Время соответственно
Например text="{TIME}"
CONTROL
type=Text
thumb определяет изображение бегунка в громкости и шкале времени thumb="(IMAGE id).(AREA id)"
Например thumb="FT.VolThumb"
CONTROL
type = slider | seeker
ticks_ypos определяет вертикальное смещение насечек на шкале времени. ticks_ypos="y"
где y - целое неотрицательное число (0 - касается верхней границы шкалы времени)
Например, ticks_ypos="0"
CONTROL
type=Seeker
top_delta определяет сдвиг текста в неграфической текстовой строке по вертикали; фон остаётся неподвижным top_delta="y"
где y - это величина сдвига текста по вертикали. Плюс - вниз, минус - вверх
Например top_delta="-2"
CONTROL
type=Text
type определяет тип контрола. От этого зависят все остальные параметры. type="t"
где t - это Panel (панель), GfxBtn (кнопка), Text (текст), Seeker (шкала времени), Slider (громкость)
Например type="Text"
CTLDEF, CONTROL
type (внутри SKIN) Определяет тип шкурки: обычная, полноэкранная или аудио. type="t"
где t - это standart (по умолчанию), audio (аудиорежим), fullscreen (пока не используется)
Например type="audio"
SKIN
variableопциональный объявляет, что содержимое текстовой строки произвольное (иначе строка всегда выводит {title}) variable="x"
где x = 0 или 1. По умолчанию "0". Если 1, то будет выведено любое содержимое, если 0, выводится {title}. Рекомендуется всегда использовать variable="1"
Например variable="1"
CONTROL
type=Text

Типы элементов шкурки

Тип Элементы Характеристика
Контур Контур окна Рамка вокруг окна проигрывателя. Особенность: не разрезается по точке, а растягивается по прямоугольнику.
Панель Верхняя панель (заголовок)
Нижняя панель (панель управления)
Панель списка
Плавающие панели
Панель располагает в себе все контролы. По сути это - контейнер. Положение трёх предопределённых панелей (верхней, нижней, панели списка) определено жёстко. В шкурке можно менять только их высоту. Плавающие панели могут располагаться где угодно внутри предопределённых панелей.
Тем не менее ширина важна даже для предопределённых панелей. Она должна быть больше, чем ширина с учётом каждого отдельно взятого контрола (с учётом его позиции и размера), иначе шкурка не будет корректно отображаться до перезагрузки проигрывателя.
Кнопка Открыть файл
Воспроизведение / Пауза с фиксацией
и пр.
Полный перечень ниже.
Кнопка - это основной контрол шкурки. Задача кнопки - выполнить функцию при нажатии на неё. Кнопки имеют три состояния:
  • обычная
  • под курсором
  • нажимаемая
Некоторые кнопки имеют фиксацию: после нажатия они переходят не в обычное состояние, а в дополнительное обычное состояние. Соответственно, такие кнопки имеют уже шесть состояний. Для кнопок с фиксацией необходимо использовать анимацию по принципу "срабатывает при отпускании кнопки".
Текстовая строка Текст заголовка
Позиция
Длительность
Время
Любой текст
Текстовая строка предназначена для отображения информации. Информации в заголовке файла. В текстовой строке можно написать любой текст, но есть всего 4 вида интерактивной информации:
  1. {TITLE} - информация заголовка
  2. {POS} - позиция воспроизводимого файла
  3. {DUR} - длительность воспроизводимого файла
  4. {TIME} - системное время
Можно комбинировать простой текст и интерактивный.
Выравнивание текста в текстовой строке выполняется по центру.
Так же как и кнопка, текстовая строка способна выполнять функцию (без анимации)
Графическая текстовая строка Позиция
Длительность
Время
Отличие от предыдущего типа состоит в том, что используемый шрифт нарисован. А это многое упрощает: нет нужды выставлять гарнитуру и размер шрифта, его жирность, если всё это является рисунком.
Графические шрифты используются для интерактивной информации с ограниченным набором символов - для позиции, длительности и времени.
Выравнивание текста в графической текстовой строке выполняется по левому краю.
Так же как и кнопка, графическая текстовая строка способна выполнять функцию (без анимации)
Слайдер Громкость Единственным представителем слайдера является громкость. Слайдер использует не одну а сразу три графические константы:
  • фон
  • фон заполненный (слева от бегунка)
  • бегунок
Бегунок громкости поддерживает битовую прозрачность. Прозрачность должна быть выражена зелёным цветом: #00ff00 или RGB{0,255,0}.
Шкала времени Шкала времени Как и громкость, шкала времени является единственным представителем своего типа. Но шкала времени сложнее. Помимо того, что есть в громкости, шкала времени также имеет два вида насечек (основные и промежуточные), маркер закладок и шрифт для обозначения позиции.
Ползунок шкалы времени, насечки и маркер поддерживает битовую прозрачность. Прозрачность должна быть выражена зелёным цветом: #00ff00 или RGB{0,255,0}.
Важный нюанс: шкала начинается раньше нуля и заканчивается после окончания.
Декоративные изображения Логотип
Иконки контекстного меню
Галка контекстного меню
Закладка в списке
Мышка  в хинтах
Декоративные изображения не имеют функций. Они просто есть. Их задача - только украшать окно Light Alloy.
Одна из особенностей декоративных изображений - место их применения заложено в программу, поэтому они только объявляются.

Иконки контекстного меню, Галка контекстного меню и Закладка в списке поддерживают битовую прозрачность. Прозрачность должна быть выражена зелёным цветом (#00ff00 или RGB{0,255,0})
Набор цветов Цвета текста в заголовке окна
Цвета OSD и видеообласти
Цвета списка
Цвета автопромотки
Цвета хинтов
Цвета контекстного меню
Цвета полноэкранной загрузки файлов и субтитров (два одинаковых блока).
Наборы цветов представляют собой блоки изображений шириной в 1 пиксель и высотой в соответствии с количеством цветов. Цвета соответствующих пикселей используются для заливки фонов и текстовых строк.
Наборы цветов только объявляются. Их применение определяется программой.

Перечень всех элементов шкурки

Все элементы, из которых строится шкурка, делятся на необходимые и опциональные. Без первых шкурка попросту невозможна. К тому же они жёстко привязаны к своим местам. Наличие или отсутствие вторых является определяется только автором шкурки.

Необходимые элементы шкурки

Id в части применения менять нельзя. Если части применения нет, то нельзя менять все Id в части объявления.

Название Тип Объявление Применение Описание
Логотип Декоративное изображение <IMAGE id="Logo" file="logo.png"> <AREA id="Splash" pos="0,0" size="262,230"/> </IMAGE> - Отображается в видеообласти при отсутствии видео
Контур окна Контур <IMAGE id="HD" file="Header.png"> <AREA id="brd" pos="0,0" size="210,128"/> </IMAGE> <CTLDEF id="WndBorder" type="Panel" bg="HD.brd" size="29,127" border_size="3,2,3,4" bgsplit_lt="6,26" bgsplit_rb="6,6" Рамка вокруг окна проигрывателя
Верхняя панель Панель <IMAGE id="HD" file="header.png"> <AREA id="bg" pos="10,4" size="10,21"/> </IMAGE> <CTLDEF id="Caption" type="Panel" bg="HD.bg" size="400,21" bgsplit="14,10"> </CTLDEF> Панель вверху окна
Нижняя панель Панель <IMAGE id="FT" file="footer.png"> <AREA id="bg" pos="0,0" size="224,104"/> </IMAGE> <CTLDEF id="CtlPanel" type="Panel" bg="FT.bg" size="400,104" bgsplit="110,103"> </CTLDEF> Панель внизу окна
Панель списка Панель <IMAGE id="PL" file="playlist.png"> <AREA id="bg" pos="0,0" size="14,34"/> </IMAGE> <CTLDEF id="PListPanel" type="Panel" bg="PL.bg" size="300,34" bgsplit="7,23"> </CTLDEF> Панель внизу области списка
Контекстное меню Декоративное изображение <IMAGE id="Menu" file="Rclick.png"> <AREA id="bg" pos="0,0" size="20,23"/> <AREA id="pics" pos="0,24" size="33,84"/> <AREA id="Checked" pos="0,109" size="16,16"/> <AREA id="Bookmark" pos="22,0" size="11,11"/> </IMAGE> - Значки в контекстном меню, маркер контекстного меню, закладка списка
Значки мышки в хинтах Декоративное изображение <IMAGE id="Hint" file="main.png"> <AREA id="Lclick" pos="0,235" size="22,22"/> <AREA id="Rclick" pos="23,235" size="22,22"/> </IMAGE> - Изображения мышек в хинтах
Наборы цветов Наборы цветов <IMAGE id="Color" file="Color.png"> <AREA id="LACaption" pos="1,1" size="1,2"/> <AREA id="OSD" pos="141,18" size="1,5"/> <AREA id="Timeline" pos="71,83" size="1,2"/> <AREA id="Hint" pos="71,119" size="1,3"/> <AREA id="PL" pos="1,18" size="1,12"/> <AREA id="Menu" pos="71,18" size="1,7"/> <AREA id="FOD_TV" pos="1,83" size="1,18"/> <AREA id="SOD_TV" pos="1,83" size="1,18"/> </IMAGE> - Все цвета по цвету на пиксель (сверху вниз):

Опциональные элементы шкурки

Все опциональные элементы шкурки условно можно разделить на кнопки и остальные элементы (не кнопки). Все кнопки строятся по единому принципу, по сути отличаются только функцией и собственным именем. Не кнопки характеризуются уникальными правилами для каждого отдельно взятого элемента.

Кнопки

Кнопки характеризуются единым подходом к синтаксису, анимацией, постоянным содержанием и одинаковой реакцией по всей площади. Синтаксис кнопок таков:

<IMAGE ...> <AREA id="btPlay" pos="10,10" size="20,60"/> </IMAGE> <CTLDEF ...> <CONTROL type="GfxBtn" pos="30,30" size="20,20" img="FT.btPlay" link="App.SuperPlay"/> </CTLDEF>

Здесь надо помнить три вещи:

  1. AREA id может быть любая, но есть разработанный удобочитаемый набор имён. Рекомендуется пользоваться в первую очередь им для дальнейшей удобочитаемости шкурки как автором, так и любыми заинтересованными людьми. В случае самостоятельного создания id необходимо использовать латиницу и избегать точек.
  2. CONTROL img составной. Он состоит из "IMAGE id" и "AREA id", написанных через точку.
  3. CONTROL link обозначает функцию кнопки (а также графической и обычной тестовой строки). Если указанная функция не существует, проигрыватель просто проигнорирует нажатие кнопки. Существует лишь ограниченное число функций. Попытка назначить функцию не из нижеприведенного перечня методом аналогии не сработает.
Название Тип Рекомендуемый AREA id CONTROL link
Файл
Открыть файл Обычная кнопка btOpen PlayList.OpenFiles
Информация о файле Обычная кнопка btInfo Window.FileInfo
Воспроизвести DVD-диск Обычная кнопка btDVD File.PlayDVD
Открыть папку с DVD Обычная кнопка btFolderDVD File.OpenDVD
Информация о файле в OSD Обычная кнопка btOSDInfo File.OSDInfo
Полноэкранное меню открытия файлов Обычная кнопка btOpenFS File.OpenFile_Fullscr
Радио
Каталог интернет радиостанций Обычная кнопка btOpenIRE File.OpenIRE
Радио: начать/остановить запись Кнопка с фиксацией btRec Player.RadioRecord
Воспроизведение
Воспроизведение / Пауза Кнопка с фиксацией btPlay App.SuperPlay
Стоп (выгрузка файла) Обычная кнопка btStop Playback.RealStop
Кадр вперёд Обычная кнопка btFStep Player.FrameStep
Сделать закладку на шкале времени Обычная кнопка btBookmark Seek.SetBookmark
Изменение скорости Кнопка с фиксацией btFF Player.SpeedPlay
Увеличить скорость воспроизведения Обычная кнопка btSpdUp Playback.SpeedUp
Уменьшить скорость воспроизведения Обычная кнопка btSpdDown Playback.SpeedDown
Прямой/обратный отсчёт времени воспроизведения Кнопка с фиксацией btSwitchPos Position.Switch
Окно
Поверх всех окон Кнопка с фиксацией btTop App.StayOnTop
Окно/Весь экран Кнопка с фиксацией btFullScr Window.FullScreen
Первоначальный размер Обычная кнопка btOrigSize Window.Original
Максимизировать (развернуть) Кнопка с фиксацией btMax App.Maximize
Минимизировать (свернуть) Обычная кнопка btMin App.Minimize
Список
Менеджер списков Обычная кнопка btPlManager PList.Manager
Предыдущий по списку Обычная кнопка btPlPrev PlayList.Prev
Список Кнопка с фиксацией btPlist Window.PlayList
Следующий по списку Обычная кнопка btPlNext PlayList.Next
Проиграть выбранный Обычная кнопка btPlay PList.Play
Добавить файл(ы) в список Обычная кнопка btAdd PList.AddFiles
Добавить папку в список Обычная кнопка btAddDir PList.AddDir
Удалить из списка Обычная кнопка btRem PList.Remove
Очистить список Обычная кнопка btClear PList.Clear
Переместить выше Обычная кнопка btUp PList.MoveUp
Переместить ниже Обычная кнопка btDown PList.MoveDown
Случайный порядок воспроизведения Кнопка с фиксацией btShuffle PList.Shuffle
Закладки в списке Кнопка с фиксацией btMarks PList.ShowMarks
Повтор списка Кнопка с фиксацией btRepeat PList.Repeat
Таблица по списку Обычная кнопка btReport PList.Report
Сохранить список Обычная кнопка btSave PList.Save
Перейти к файлу (поиск в списке) Обычная кнопка btJump PList.Jump
Отсортировать список Обычная кнопка btSort PList.Sort
Перемешать список Обычная кнопка btVisShuffle PList.VisShuffle
Показать файл в проводнике Обычная кнопка btShow PList.Search
Звук
Отключить звук Кнопка с фиксацией btMute Audio.Mute
Переключить аудио-дорожку Обычная кнопка btASwitch Sound.Switch
Опции звука Обычная кнопка btAProps Window.AudioProps
Субтитры
Показать/скрыть субтитры Кнопка с фиксацией btSubs Subtitles.Show
Переключить субтитры Обычная кнопка btSSwitch Subtitles.Switch
Переключить субтитры №2 Обычная кнопка btSSwitch2 Subtitles.Switch2
Увеличить размер субтитров Обычная кнопка btSSizeUp Subtitles.SizeUp
Уменьшить размер субтитров Обычная кнопка btSSizeDown Subtitles.SizeDown
Опции субтитров Обычная кнопка btSProps Window.SubProps
Полноэкранное меню загрузки субтитров Обычная кнопка btSAddFS Subtitles.Open_Fullscr
Видео
Переключить пропорции Обычная кнопка btVRatio Video.RatioSwitch
Опции видео Обычная кнопка btVProps Window.VideoProps
Сохранить кадр Обычная кнопка btSShot Player.ScreenShot
Сохранить кадр в буфер обмена Обычная кнопка btSShotCB Video.ScreenshotCB
Сохранить миниатюры Обычная кнопка btSaveThumbs Video.SaveThumbs
Сохранить пакет полноразмерных скриншотов Обычная кнопка btSaveScreensPack Video.SaveScreensPack
Открыть папку со снимками с экрана Обычная кнопка btOpenScrFolder Application.OpenScrFolder
Программа
Настройки Обычная кнопка btPrefs App.Prefs
Планировщик Кнопка с фиксацией btSheduler Application.Scheduler
Дерево фильтров Обычная кнопка btFlt Window.Filters
О программе Обычная кнопка btAbout App.About
Выход Обычная кнопка btExit App.Exit
Система
Выключить монитор Обычная кнопка btMonitorOff Application.MonitorOff
Вызов диалога выключения компьютера Обычная кнопка btPowerOff Application.PowerOff
Перевести компьютер в спящий режим Обычная кнопка btHibernate Application.Hibernate

Не кнопки

Название Тип Объявление Применение Описание
Шкала времени Шкала времени <AREA id="SeekBGfill" pos="33,1" size="24,14"/> <AREA id="SeekThumb" pos="64,1" size="14,14"/> <AREA id="SeekBG" pos="79,1" size="24,14"/> <AREA id="SeekHiTick" pos="58,1" size="1,3"/> <AREA id="SeekLoTick" pos="59,1" size="1,3"/> <AREA id="SeekChapter" pos="58,13" size="3,2"/> <CONTROL type="Seeker" pos="0,0" size="-1,14" bgsplit="12,6" OpeningPos="0" OpeningHeight="14" bg="Ft.SeekBG" bgfill="Ft.SeekBGfill" thumb="Ft.SeekThumb" lotick="Ft.SeekLoTick" hitick="Ft.SeekHiTick" digits_ypos="4" ticks_ypos="0" chapter="Ft.SeekChapter" chapter_pos="-1,12" /> Шкала времени служит для перемотки файла. Её атрибуты:
  • size="-4,24" - отрицательная длина; это значит, что длина отсчитывается от правого края панели;
  • bgfill="FT.SeekBGfill" - фон пройденного участка;
  • thumb="FT.SeekThumb" - бегунок;
  • hitick="FT.SeekHiTick" - основные насечки;
  • lotick="FT.SeekLoTick" - дополнительные насечки;
  • OpeningPos="14" - высота от верхнего края шкалы времени до автопромотки;
  • OpeningHeight="6" - высота самой автопромотки.
  • digits_ypos="4" - вертикальный сдвиг цифр на шкале времени.
  • ticks_ypos="0" - вертикальный сдвиг насечек на шкале времени.
  • chapter="Ft.SeekChapter" - маркер закладок.
  • chapter_pos="-1,12" - сдвиг маркера закладок.
Громкость Слайдер <AREA id="VolBGF" pos="226,40" size="9,13"/> <AREA id="VolThumb" pos="236,40" size="10,13"/> <AREA id="VolBG" pos="247,40" size="9,13"/> <CONTROL type="Slider" pos="45,40" size="92,13" bg="FT.VolBG" bgsplit="5,19" bgfill="FT.VolBGF" thumb="FT.VolThumb"/> Громкость говорит сама за себя.
Заголовок Текстовая строка <AREA id="TitleBG" pos="10,8" size="10,16"/> <CONTROL type="Text" pos="100,3" size="-100,17" font="Verdana" fontsz="10" top_delta="-2" bold="0" bg="HD.TitleBG" bgsplit="8,5" variable="1" text="{TITLE}"/> Заголовок предназначен для отображения имени файла и некоторой информации о состоянии проигрывателя. Атрибуты:
  • font="Verdana" - гарнитура.
  • fontsz="10" - размер шрифта;
  • top_delta="-2" - смещение текста по вертикали. Минус - вверх, плюс - вниз;
  • bold="0" - жирность шрифта: 0 - обычный, 1 - жирный;
  • bg="HD.TitleBG" - фон под текстом;
  • text="{TITLE}" - собственно текст.
  • link="" - функция, которая будет выполнена при нажатии на текстовую строку; необязательный параметр.
Помимо этого, в наборах цветов указываются цвета текста при активном и неактивном окне. Однако, эти цвета действуют на все текстовые строки, поэтому создание обычной текстовой строки с позицией, длительностью или временем, хоть о возможно, но будет иметь ограничения по цвету и сопутствующие проблемы.
Позиция
Длительность
Время
Графическая текстовая строка <AREA id="Digits" pos="326,6" size="114,15"/> <FONT id="Digits" img="FT.Digits" chars="0123456789:/ -"/> <CONTROL type="Text" pos="3,1" size="69,14" font="Digits" text=" {POS} / {DUR}" link=" Position.Switch"/> Позиция, Длительность и Время обозначаются такими значениями соответственно:
  1. {POS} - позиция воспроизводимого файла
  2. {DUR} - длительность воспроизводимого файла
  3. {TIME} - системное время
Для корректного отображения информации необходимы следующие символы:
  • {POS} -  "0123456789: -" (двоеточие разделяет часы, минуты, секунды; пробел и дефис участвуют в отображении прямого и обратного отсчёта)
  • {DUR} -  "0123456789:"
  • {TIME} - "0123456789: " (двоеточие ежесекундно заменяется пробелом и наоборот)
Кроме этих значений можно использовать любые символы на своё усмотрение. Также можно комбинировать простой текст и интерактивный.

Для того, чтобы щелчок по позиции левой кнопкой мыши переключал прямой обратный отсчёт, контрол должен быть снабжён таким атрибутом: link=" Position.Switch"

Изображения делятся на символы на основании нижнего ряда пикселей: изменился цвет - значит начался новый символ. Пример (масштаб 200%):